package tech.aistar.design.singleton;

/**
 * 本类用来演示: 饿汉模式 - 多线程安全
 *
 * 类加载的过程是一个多线程安全的过程.
 *
 * @author: success
 * @date: 2022/7/22 3:32 下午
 */
public class Singleton01 {
    //2. 提供本类的唯一的实例作为它的静态属性
    private static Singleton01 instance = new Singleton01();

    //1. 私有化构造 - 为了不让外界去new
    private Singleton01(){
        //初始化的业务...
        System.out.println("构造方法...");
    }

    //3. 提供一个公开的方法来返回这个类的唯一实例
    public static Singleton01 getInstance(){
        return instance;
    }

    //其他的一些非静态的方法...
}
class Singleton01Test{
    public static void main(String[] args) {
        Singleton01 s1 = Singleton01.getInstance();
        Singleton01 s2 = Singleton01.getInstance();
        System.out.println(s1 == s2);//true
    }
}